1. Technical Field
The present teaching generally relates to computer systems. More specifically, the present teaching relates to data systems.
2. Technical Background
With the development of the computers, ever increasing amounts of information is stored in computer data systems. The rapid growth of the Internet makes it possible for users to access data via network connections anytime and anywhere. To meet the demand, data centers have been designed to aim at providing data availability 24 hours a day and 7 days a week. To meet such a goal, data centers are constructed to provide fault tolerance so that when some computers in the data center network fail, alternative computers in the network can be used to continue the service to data access requests.
FIG. 1 (PRIOR ART) shows an exemplary traditional configuration 100 of data centers that provide fault tolerance. In the exemplary system shown in FIG. 1, there are two data centers, data center 1 and data center 2. In data center 1, there are two master computers, master M11 110 and master M12 120, both being read and write servers. Master server M11 110 is connected to master M12 120 and data migrate in a single direction from master M11 110 to master M12 120. In data center 2, there are also two master computers, master M21 130 and master M22 140, both being read and write servers. Master server M21 130 is connected to master M22 140 and data migrate in a single direction from master M21 130 to master M22 140.
Data center 1 and data center 2 are also connected in the following manner. Data in data center 1 can be migrated to data center 2 via master M12 120. Specifically, M12 120 can move data in data center 1 to master M21 130 in data center 2. In the other direction, data in data center 2 can be migrated to data center 1 via master M22 140. Specifically, data in data center 2 may be migrated to data center 1 via master M22 140 to master M11 110 of data center 1. In this configuration, whenever there is an issue in one of the data centers, data stored therein may be migrated to the other so that subsequent data access requests can be handled by the data center that now has the data from the failing data center.
Although data access service can be continued in this configuration, because data migration has to cross data centers, it can be slow and inefficient. In addition, depending on the nature of applications, the efficiency may also differ. For instance, for some applications, most of the data access requests may involve read data and only a small number involve writes. Examples of such application include content management systems, inventory management systems, booking systems, etc. In such applications, a typical user spends most time analyzing data and very small fraction of their time updating data. For such applications, it is important to be able to read whenever it is needed without or with little interruption.
Thus, an improved data system that can provide efficient and continued data access services is needed.